#include "TCP_Server.h"
#include "TCP_Client.h"
#include "Sqlite.h"
#include "STM32.h"

int main()
{
    // 初始化模块
    STM32_Init();                    // 模拟STM32初始化
    TCP_Server_Init(SERVER_PORT);    // 初始化TCP服务器
    sqlite3 *db = Sqlite3_Init_DB(); // 初始化数据库（可在Handle_Client中按需初始化）

    // 接受客户端连接
    while (1)
    {
        int client_sock = TCP_Accept_Client();
        if (client_sock == -1)
            continue;

        // 创建线程处理客户端
        pthread_t thread;
        int *sock_ptr = (int *)malloc(sizeof(int));
        *sock_ptr = client_sock;
        if (pthread_create(&thread, NULL, Handle_Client, sock_ptr) != 0)
        {
            perror("创建线程失败");
            close(client_sock);
            free(sock_ptr);
        }
        else
        {
            pthread_detach(thread); // 分离线程，自动回收资源
        }
    }

    sqlite3_close(db);
    return 0;
}